//
// Created by Administrator on 25-7-25.
//

#ifndef MOTOR_STEP_H
#define MOTOR_STEP_H

#include <stdint.h>
#include "stm32f4xx_gpio.h"

/* Private defines -----------------------------------------------------------*/
#define ENABLE_PIN GPIO_Pin_7 //控制器使能引脚   EN：接GND, 电机才能工作。
#define ENABLE_GPIO GPIOD //EN引脚编号

#define DIRECTION_PIN GPIO_Pin_8 //控制电机方向 引脚高电平——>正转 ;引脚低电平——>反转 DIR：电机方向
#define DIRECTION_GPIO GPIOD //DIR引脚编号

#define MS1_PIN GPIO_Pin_9 //微步分辨率MS1
#define MS1_GPIO GPIOD //MS1引脚编号
#define MS2_PIN GPIO_Pin_10 //微步分辨率MS2
#define MS2_GPIO GPIOD //MS2引脚编号

#define STEP_PIN GPIO_Pin_11 //控制电机脉冲,占空比高于50%或者低于50%都为一个脉冲信号 STEP：脉冲输入
#define STEP_GPIO GPIOD //STEP引脚编号

//初始化步进电机
void initMotor(void);

//设置电机生效
void setMotorEnable(uint8_t enable);

//步进电机运行
void motorRun(uint8_t direction,uint32_t step);

//步进电机停止
void motorStop(void);

//设置电机正传反转 控制电机方向 引脚高电平——>正转 ;引脚低电平——>反转
void setMotorDirection(uint8_t direction);

//设置电机微步分辨率(细分设置)
void setMotorPulse(uint8_t pulse);

#endif //MOTOR_STEP_H
